﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay;
using Ewell.Interface.Common.Model.GateWay.Dto.InsuranceManager;
using System;
using System.Collections.Generic;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    /// <summary>
    /// 医保管理服务
    /// </summary>
    public class InsuranceManagerDubboService : GateWayUri
    {
        public override string url  => "dubbo/cc.ewell.his.insurance.management.dubbo.InsuranceManagerDubboService";
        public GateWayMethod saveMedInsurSignForServer => new SaveMedInsurSignForServer(this.url);
        public GateWayMethod updateMedInsurSignByIdForServer => new UpdateMedInsurSignByIdForServer(this.url);
        public GateWayMethod queryMedInsurSignByExampleForServer => new QueryMedInsurSignByExampleForServer(this.url);
    }
    /// <summary>
    /// 保存签到信息
    /// </summary>
    public class SaveMedInsurSignForServer : GateWayMethod
    {
        public SaveMedInsurSignForServer(string baseUrl) : base(baseUrl)
        {
        }
        public override string methodName => "saveMedInsurSignForServer";
        public override string paramClass => "cc.ewell.his.insurance.management.upon.request.SaveMedInsurSignReq";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(SaveMedInsurSignReq);

        public override Type responseParamType => typeof(object);
    }
    /// <summary>
    /// 修改签到信息
    /// </summary>
    public class UpdateMedInsurSignByIdForServer : GateWayMethod
    {
        public UpdateMedInsurSignByIdForServer(string baseUrl) : base(baseUrl)
        {
        }
        public override string methodName => "updateMedInsurSignByIdForServer";
        public override string paramClass => "cc.ewell.his.insurance.management.upon.request.UpdateMedInsurSignReq";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(UpdateMedInsurSignReq);

        public override Type responseParamType => typeof(object);
    }
    /// <summary>
    /// 查询签到信息
    /// </summary>
    public class QueryMedInsurSignByExampleForServer : GateWayMethod
    {
        public QueryMedInsurSignByExampleForServer(string baseUrl) : base(baseUrl)
        {
        }
        public override string methodName => "queryMedInsurSignByExampleForServer";
        public override string paramClass => "cc.ewell.his.insurance.management.upon.request.QueryMedInsurSignReq";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(QueryMedInsurSignReq);

        public override Type responseParamType => typeof(List<MedInsurSign>);
    }
}
